# 代码编写者： 李朔
# 开发时间： 2021/7/22 11:17
points=[[1,16],[2,8],[1,6],[7,12]]

def findMinArrowShots(points):
    '''
    以最少的箭可以穿过所有的区间
    :param points: 区间列表
    :return: 箭的数量
    '''
    points.sort(key=lambda x:x[1])
    print(points)
    end,i,arrow_count=points[0][1],1,1
    while i<len(points):
        if end>=points[i][0]:
            #当前区间和我们的待处理区间有重叠，那么就共用一个箭
            pass
        else:             #end<points[i][0]
            arrow_count+=1
            end=points[i][1]
        i+=1
    return arrow_count

print(findMinArrowShots(points))